Мы часто пишем заметки о безопасности виртуальной инфраструктуры VMware vSphere и других продуктов на данной платформе (их можно найти по тэгу Security). И вот на днях я натолкнулся на интересную статью "It’s a Unix system, I know this!", в которой есть одна умная мысль, касающаяся настройки безопасности, и которую я часто пытаюсь донести до заказчиков. А именно: некорректное планирование и исполнение процедур по обеспечению безопасности может привести к еще большим проблемам как с точки зрения конфигурации виртуальной среды, так и с точки зрения самой безопасности.
Итак, обратимся к статье. Есть такая организация в штатах Defense Information Systems Agency (DISA), которая выпускает документ Security Technical Implementation Guide (STIG), являющийся руководящим документом по обеспечению безопасности для правительственных организаций. Есть подозрение, что в части виртуальных машин он сделан на основе VMware vSphere Security Hardening, однако не из самой актуальной версии последнего.
Так вот в этом DISA STIG есть пункты, касающиеся виртуальных машин, например, пункт про отключение операций Copy/Paste с гостевой ОС виртуальной машины из ОС компьютера, где выполняется vSphere Client.
Посмотрим, как рекомендуется выполнить эту процедуру:
To edit a powered-down virtual machine’s .vmx file, first remove it from vCenter Server’s inventory. Manual additions to the .vmx file from ESXi will be overwritten by any registered entries stored in the vCenter Server database. Make a backup copy of the .vmx file. If the edit breaks the virtual machine, it can be rolled back to the original version of the file.
1. Open the vSphere/VMware Infrastructure (VI) Client and log in with appropriate credentials. If connecting to vCenter Server, click on the desired host. Click the Configuration tab. Click Storage. Right-click on the appropriate datastore and click Browse Datastore. Navigate to the folder named after the virtual machine, and locate the <virtual machine>.vmx file. Right-click the .vmx file and click Remove from inventory.
2. Temporarily disable Lockdown Mode and enable the ESXi Shell via the vSphere Client.
3. Open the vSphere/VMware Infrastructure (VI) Client and log in with appropriate credentials. If connecting to vCenter Server, click on the desired host. Click the Configuration tab. Click Software, Security Profile, Services, Properties, ESXi Shell, and Options, respectively. Start the ESXi Shell service, where/as required.
4. As root, log in to the ESXi host and locate the VM’s vmx file.
# find / | grep vmx
Add the following to the VM’s vmx file.
keyword = “keyval”
Open the vSphere/VMware Infrastructure (VI) Client and log in with appropriate credentials.
If connecting to vCenter Server, click on the desired host.
Click the Configuration tab.
Click Storage.
Right-click on the appropriate datastore and click Browse Datastore.
Navigate to the folder named after the virtual machine, and locate the <virtual machine>.vmx file.
Right-click the .vmx file and click Add to inventory. The Add to Inventory wizard opens.
Continue to follow the wizard to add the virtual machine.
Круто, да? Это все для того, чтобы просто отключить копирование из консоли ВМ (для одной машины), которое если уж кому-то очень сильно понадобится - он сделает все равно через принтскрин или еще как.
А теперь подумаем, к чему это все может привести:
В процессе такой настройки администратор может что-то испортить.
Сотни виртуальных машин обработать таким способом очень долго и нудно.
Такая процедура открывает больше дырок, чем закрывает (администратор снимает Lockdown хоста, делает операции в шеле и тыркается по вицентру).
Контролировать исполнение процесса очень сложно - все ли локдауны были закрыты, по всем машинам ли мы прошлись и т.п.
Конечно же, есть простой и элегантный способ сделать все это сразу для всех ВМ и с помощью PowerCLI через методы, описанные в пунктах vm.disable-console-copy и vm.disable-console-paste документа vSphere Hardening Guide.
Однако те из вас, у кого в компании есть отдел информационной безопасности, знают что такое формализм этих ребят, которые может в виртуализации и не разбираются, зато прекрасно понимают, что приведенный выше гайд несколько отличается от двух строчек на PowerShell.
И, хотя это в основном касается западных организаций, в отечественных крупных компаниях тоже возникают проблемы из-за подобных процедур.
Так вот какова мораль сей басни:
При разработке руководящих документов по обеспечению безопасности виртуальной инфраструктуры поймите, какие требования являются обязательными, а какие можно реализовать факультативно (то есть не реализовывать вовсе). Минимизируйте число обязательных требований и по мере необходимости расширяйте.
Используйте последние версии руководящих документов по ИБ от вендоров и всегда обновляйте свои собственные (хотя бы с выходом мажорной версии продукта).
Максимально применяйте автоматизацию при выполнении процедур по конфигурации безопасности. В VMware vSphere и других продуктах VMware можно автоматизировать практически все.
Если выполнение требования к ИБ виртуальной среды потенциально может открыть еще больше дырок, вызвать ошибки конфигурации и причинить еще беды, подумайте - а может стоит отказаться от этого требования или переформулировать его?
Ну а если кратко - с головой надо подходить, а формализм отставить. Больше интересных подробностей - в статье.
Написана она на PowerCLI человеком по имени Sean Duffy и обновлялась совсем недавно - 29 декабря прошлого года.
Для резервного копирования и восстановления конфигурации VMware ESXi используются командлеты PowerCLI Get-VMHostFirmware и Set-VMHostFirmware. Утилита была протестирована для ESXi 5.0 и 5.1, графический интерфейс позволяет производить резервное копирование на локальный диск компьютера, где она запущена. Убедитесь, кстати, что в вашей инфраструктуре работает служба DNS, так как утилита обращается к хост-серверам по именам.
Из интересных особенностей - возможность восстановить конфигурацию на другой хост ESXi (на скриншоте подчеркнуто красным). В последней версии также добавлена валидация хоста на возможность резервного копирования и восстановления (т.е., что он не находится в maintenance mode и вообще работает).
Скачать ESXi Host Backup & Restore GUI Utility можно по этой ссылке. Для запуска утилиты вам потребуется установленный PowerShell / PowerCLI.
Для обладателей устройств iPad или iPhone и, по совместительству, разработчиков сценариев для автоматизации операций в виртуальной инфраструктуре VMware vSphere на App Store есть замечательное справочное руководство по скриптам PowerCLI - vPowerCLI5 Reference.
Справочник включает в себя более 200 командлетов PowerCLI, которые упорядочены в алфавитном порядке, также есть поиск. Для каждого командлета предоставляется описание, взятое из vSphere PowerCLI Reference от VMware.
Если вы являетесь разработчиком и администраторов скриптов PowerCLI / PowerShell для автоматизации операций в виртуальной инфраструктуре VMware vSphere, вам, наверняка, часто приходится хардкодить логин и пароль для соединения с сервером vCenter или вводить их в интерактивном режиме. Это не очень безопасно (мало ли кто увидит ваш скрипт на экране), да и вообще, не очень удобно.
Специально для этого в PowerCLI есть хранилище, называемое Credential Store, в которое можно помещать логин и пароль от сервера, с которым вы соединяетесь из скрипта.
Таким образом для этого хоста вы помещаете креды "user" с паролем "password" в шифрованное хранилище Credential Store, которое находится в следующем файле:
%APPDATA%\VMware\credstore\vicredentials.xml
Теперь при соединении с vCenter из скрипта, просто пишете:
Connect-VIServer 192.168.1.10
В этом случае, при отсутствии указания логина и пароля, PowerCLI заглядывает в хранилище и смотрит, нет ли там кредов для этого хоста, и если они есть, то подставляет их. Все просто.
Чтобы посмотреть креды из хранилища, нужно просто вызвать следующий командлет:
Такой способ хранения логинов и паролей для скриптов действует для конкретного пользователя, так как они хранятся в Credential Store в зашифрованном виде и могут быть расшифрованы только под ним. То есть, если злоумышленник украдет виртуальную машину с этими скриптами, но не сможет залогиниться под этим пользователем, получить эти пароли он не сможет, при условии использования Windows file encryption (EFS) для файла хранилища.
Есть также и альтернативный метод хранения кредов для скриптов в произвольном файле.
Для тех из вас, кто умеет и любит разрабатывать скрипты на PowerCLI / PowerShell для виртуальной инфраструктуры VMware vSphere, приятная новость - вышло два полезных справочика в формате Quick Reference. Первый - vSphere 5.0 Image Builder PowerCLI Quick-Reference v0.2, описывающий основные командлеты для подготовки образов хост-серверов к автоматизированному развертыванию (а также собственных сборок ESXi) средствами Image Builder:
Многие администраторы VMware vSphere 5 управляют виртуальной инфраструктурой с помощью фреймворка PowerCLI/Powershell. Это удобно для выполнения различных операций из командной строки и вывода в файлы отчетов и настроек по хостам ESXi и виртуальным машинам.
Между тем, есть еще один важный аспект в данном процессе - неплохо бы получать графики для различных сущностей, например, визуализовать машины по загрузке процесса или памяти, сравнить хосты по загрузкам, посчитать количество машин в различных разрезах и т.п.
Этот график построил Шон, автор сайта http://www.shogan.co.uk.
Для того, чтобы начать нужно установить Microsoft Chart Controls for Microsoft .NET Framework 3.5. Шон понял, что создавать чарты на PowerCLI/Powershell - это геморрой, поэтому он написал свои функции, которые облегчают этот процесс:
Мы уже писали о том, что VMware выпустила плакат для администраторов VMware vSphere 5 по интерфейсу управления инфраструктурой виртуализации PowerCLI через PowerShell, а сегодня очередная порция плакатов с обновленной версией по PowerCLI.
Постер VMware ESXi 5 Reference - основные процедуры администрирования хостов ESXi и виртуальных машин из командной строки.
Многие пользователи VMware vSphere не пользуются средством автоматизированного обновления хост-серверов VMware Update Manager по тем или иным причинам. Кроме того, пользователи бесплатного VMware ESXi 5 хотели бы обновлять свои хост-серверы, потому как даже эта бесплатная платформа используется в компаниях в производственной среде. Если раньше можно было обновлять хосты ESX/ESXi 4 прямо из vCLI (vihostupdate), то теперь патч нужно загрузить на хранилище (Datastore).
Ниже представлен способ обновления VMware ESXi 5 без VMware Update Manager:
1. Загрузите нужный патч для VMware ESXi 5 с VMware Patch Portal в формате zip-файла.
2. Убедитесь, что на хосте включен доступ по SSH, а также на нем нет запущенных виртуальных машин (или переведите его в Maintenance Mode).
3. Скопируйте патч ESXi 5 в один из Datastore'ов (общий или локальный) с помощью бесплатной утилиты FastSCP. Лучше использовать общее хранилище, чтобы с одного файла патча обновлять несколько хостов.
5. После этого начнется обновления хост-сервера VMware ESXi 5, по окончании которого его нужно будет перезагрузить.
Патч для ESXi можно накатить и через PowerCLI (но загрузить патч на Datastore все равно придется). Для этого можно использовать скрипт от Justin Guidroz.
Может быть кто и сталкивался с такой проблемой как отслеживания настроек кластера. Кто-то что-то временно изменил в кластере (например, отключил HA на время), а потом в нужный момент перезапуск виртуальных машин не сработал. Функционал по профилям кластеров отсутствует среди возможностей VMware Host Profiles.
Для этих целей коллеги из Франции написали PowerCLI скрипт, который позволяет делать следующие вещи:
Импорт/экспорт/проверка кластерных настроек.
Сравнение реальных настроек кластера с настройками, сохраненными в файле.
Отправка сообщения о настройках кластера по email
А вот так выглядит письмо администратору vSphere:
Скачать скрипт Manage-ClusterProfile можно по этой ссылке. А вот тут несколько подробнее.
Те, кто увлекается разработкой сценариев на PowerShell на фреймоврке PowerCLI, наверное помнят про бесплатную раздачу постеров на блоге VMware. Тогда не все успели забрать свой постер.
Сейчас они пишут, что раздача закончена. Но не беда - вы без проблем можете забрать свой постер по PowerCLI по этой ссылке. А вот еще версия для распечатки на листах А4.
На сайте проекта VMware Labs (о котором мы уже писали), появилась утилита для сохранения иерархии объектов и их конфигурации на VMware vCenter под названием VMware InventorySnapshot.
С помощью InventorySnapshot можно сохранить иерархию и параметры: папок датацентра (Datacenter folders), сами датацентры (datacenters), кластеры VMware HA/DRS и их настройки, пулы ресурсов (resource pools), виртуальные приложения (vApp), иерархию объектов, роли и пермиссии, а также настраиваемые поля объектов (custom fields).
Далее на основании снапшота генерируется PowerCLI скрипт, который потом можно выполнить на любом другом окружении vCenter. Это полезно, например, когда у вас есть тестовое окружение, конфигурацию которого вы хотите перенести в производственную среду на другом vCenter (вручную делать это может оказаться слишком нудным).
Как многим известно, компания Veeam Software делает самый лучший продукт для резервного копирования виртуальных машин VMware vSphere / ESX под названием Veeam Backup and Replication. О его возможностях мы уже писали здесь и здесь, а сегодня мы расскажем еще об одной интересной функции - автоматизации задач резервного копирования, репликации и восстановления с помощью Microsoft PowerShell.
Veeam Backup PowerShell Extensions требуют пакетов Windows PowerShell и vSphere PowerCLI, которые позволяют автоматизировать операции по управлению виртуальной инфраструктурой. После их установки на сервере резервного копирования Veeam Baclup and Replication, в меню Tools необходимо выбрать пункт PowerShell.
Далее можно использовать уже готовые командлеты (cmdlets) от Veeam, которые могут делать следующее:
CMDLET
Действие
Add-VBRESX
Add ESX server
Add-VBRESXi
Add ESXi
Add-VBRBackupJob
Create a backup job
Add-VBRReplicaJob
Create a replica job
Add-VBRLinux
Add Linux server
Add-VBRVCenter
Add VirtualCenter server
Add-VBRCopyJob
Add a File Copy job (FastSCP)
Get-VBRJobDestination
Get destination remote or local
Get-VBRJob
Get job list
Get-VBRJobOptions
Get additional backup job settings
Get-VBRReplicaJobs
Get additional replica job settings
Get-VBRJobSchedule
Job Schedule
Get-VBRJobVSSOptions
Backup Consistency VSS
Get-VBRJobRestorePoints
Get restore point
Get-VBRServers
Get hosts list.
Remove-VBRJob
Remove the job
Remove-VBRServer
Remove a server.
Set-VBRESX
Set ESX server options you want to work with to Veeam Backup and FastSCP.
Set-VBRESXi
Set ESXi server options you want t o work with to Veeam Backup and FastSCP.
Set-VBRBackupJob
Edit a backup job
Set-VBRJobOptions
Edit additional backup job settings.
Set-VBRReplicaJob
Set a replica job
Set-VBRJobSchedule
Job Schedule
Set-VBRJobVssOptions
Backup Consistency
Set-VBRLinux
Set the job Linux server options
Set-VBRRestoreVM
Restore VM
Set-VBRRestoreVMFiles
Restoring VM Files: VMX, VMDK, etc
Set-VBRVCenter
Set VirtualCenter server
Start-VBRGuestFileRestore
Start file restore
Start-VBRJob
Start the job
Start-VBRReplicaFailover
Start the replica
Stop-VBRGuestFileRestore
Stop file restore
Stop-VBRJob
Stop the job
Stop-VBRReplicaFailover
Stop the replica
С помощью возможностей PowerShell с Veeam Backup можно сделать очень многое, как, например, сделали в компании "Протек". Используя расширения Veeam Backup PS и PowerCLI / PowerShell, эти ребята разработали систему автоматического тестирования восстановления виртуальных машин из резервных копий (то, что будет реализовано в Veeam Backup and Replication 5 с помощью SureBackup):
Многие пользователи применяют бесплатный гипервизор VMware ESXi для базовой консолидации серверов в небольших компаниях. В целях безопасности при доступе к управлению сервером ESXi компания VMware сделала специальный режим ESXi Lockdown Mode, который позволяет отключить доступ пользователю root через vSphere Client, интерфейс удаленного управления из командной строки (RCLI) и средств управления PowerShell (PowerCLI).
Включить Lockdown Mode на ESXi можно, нажав F2 в физической консоли VMware ESXi, где после аутентификации этот режим можно настроить в меню:
Таким образом, VMware ESXi по отношению к управлению сервером виртуализации имеет следующие функции:
Способ доступа к управлению
Lockdown Mode выключен
Lockdown Mode включен
Управление через VMware vCenter
Да
Да
Доступ из физической консоли пользователем root
Да
Да
Доступ к физической консоли для других пользователей
Нет
Нет
Соединение из vSphere Client напрямую с ESXi пользователем root
Да
Нет
Соединение из vSphere Client напрямую с ESXi под другими пользователями
Да
Да
Соединение из интерфейса PowerCLI / RCLI к ESXi пользователем root
Да
Нет
Соединение из интерфейса PowerCLI / RCLI к ESXi под другими пользователями
Многие пользователи виртуальной инфраструктуры VMware vSphere 4 и серверов ESX не раз сталкивались с публикациями о том, как можно управлять серверами виртуализации и виртуальными машинами с помощью интерфейса PowerShell. Для VMware vSphere это реализуется средствами пакета PowerCLI, который представляет собой надстройку к PowerShell для управления виртуальной инфраструктурой с помощью сценариев командной строки.
Бывает такая ситуация, что у вас выключается единственный VMware vCenter, и по каким-то причинам быстро его включить не получается, а найти некоторые виртуальные машины нужно срочно. Но, поскольку VMware vCenter отключен, вам придется логиниться на каждый сервер VMware ESX и искать эти ВМ.
На сайте Virtu-Al.net коллега Alan Renouf выложил бесплатный скрипт vCheck, предназначенный для сбора информации о виртуальной инфраструктуре VMware vSphere 4, хостах ESX и vCenter. Для запуска скрипта потребуется использовать интерфейсVMware vSphere PowerCLI. Результатом работы скрипта будет следующая информация:
Основное
Число хостов ESX
Число виртуальных машин
Число шаблонов
Число кластеров
Число виртуальных хранилищ (Datastores)
Число запущенных (активных) виртуальных машин
Число остановленных виртуальных машин
Количество миграций DRS за последние несколько дней
Снапшоты, которые старше, чем заданное количество дней
Виртуальные хранилища (Datastores) с менее, чем заданным процентом свободного пространства
Виртуальные машины, созданные за последние X дней
Виртуальные машины, удаленные за последние X дней
Виртуальные машины без VMware Tools
Виртуальные машины с подключенным CD-ROM
Виртуальные машины с подключенным Floppy Drive
Виртуальные машины на локальных хранилищах
Виртуальные машины, где счетчик CPU ready превышает X%
Виртуальные машины, у которых число vCPU превышает заданное количество
Список миграций DRS
Хосты ESX в Maintenance Mode
Хосты ESX в состоянии disconnected
Проверка NTP-сервера по заданному имени
Сообщения лога vmkernel warning за последние X дней
Сообщения лога vCenter за последний X дней
Сообщения лога vCenter (Windows Event Log Errors) за последние X дней
Детали сервиса VMware vCenter Service
В начале скрипта можно выключить не требующиеся секции отчета
Активные тревоги, привязанные к ВМ
Активные тревоги, привязанные к кластеру
Активные тревоги, привязанные к хосту ESX
Недоступные iSCSI LUN
Проверка vSphere: размеры слотов для VMware HA
Проверка vSphere: устаревшая версия виртуального Hardware (меньше версии 7)
Компания Icomasoft предлагает бесплатно воспользоваться шпаргалкой по PowerCLI (интерфейс VMware vSphere для управления инфраструктурой ESX через PowerShell).
С VMware vSphere работают не только системные администраторы посредством vSphere Client в небольших окружениях, но и Enterprise-администраторы в виртуальных окружениях из сотен виртуальных машин, где без средств автоматизации не обойтись. Кроме того, разработчики программного обеспечения для VMware пишут свои командные сценарии и плагины, которые облегчают жизнь системным администраторам. Сегодня мы поговорим о том, какие интерфейсы предлагает нам VMware для автоматизации операций с такими продуктами, как VMware vSphere, Workstation, Server и другими. Таги: VMware, vSphere, ESX, vMA, PowerCLI, PowerShell, Studio, Workstation, Server, Player
Если вы это уже умеете – то вам определенно на сайт компании Icomasoft, на страницу продукта PowerScripter... Таги: VMware, ESX, PowerShell, vSphere, PowerCLI